<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- macos.qdoc -->
  <title>Qt for macOS - Building from Source | Qt 5.14</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt 5.14</a></td><td >Qt for macOS - Building from Source</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.14.2 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#requirements">Requirements</a></li>
<li class="level2"><a href="#compiler-versions">Compiler Versions</a></li>
<li class="level1"><a href="#qdoc-dependencies">QDoc Dependencies</a></li>
<li class="level1"><a href="#steps-for-building">Steps for Building</a></li>
<li class="level2"><a href="#step-1-install-the-license-file-commercially-licensed-qt-only">Step 1: Install the License File (Commercially Licensed Qt Only)</a></li>
<li class="level2"><a href="#step-2-unpack-the-archive">Step 2: Unpack the Archive</a></li>
<li class="level2"><a href="#step-3-build-the-qt-library">Step 3: Build the Qt Library</a></li>
<li class="level2"><a href="#step-4-set-the-environment-variables">Step 4: Set the Environment Variables</a></li>
<li class="level1"><a href="#step-5-build-the-qt-documentation">Step 5: Build the Qt Documentation</a></li>
<li class="level1"><a href="#limitations">Limitations</a></li>
<li class="level2"><a href="#fink">Fink</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Qt for macOS - Building from Source</h1>
<span class="subtitle"></span>
<!-- $$$macos-building.html-description -->
<div class="descr"> <a name="details"></a>
<a name="requirements"></a>
<h2 id="requirements">Requirements</h2>
<p>Qt requires a macOS platform SDK and corresponding toolchain to be installed on the system. You can get this by installing the Xcode command line tools:</p>
<pre class="cpp">

  xcode<span class="operator">-</span>select <span class="operator">-</span><span class="operator">-</span>install

</pre>
<p>Or by downloading and installing <a href="https://developer.apple.com/xcode/">Xcode</a>.</p>
<a name="compiler-versions"></a>
<h3 id="compiler-versions">Compiler Versions</h3>
<p>Qt for macOS is tested and compatible with several versions of GCC (GNU Compiler Collection) and Clang (as available from Xcode). For a list of tested configurations, refer to the <i>Reference Configuration</i> section of the <a href="supported-platforms.html#reference-configurations">supported platforms</a> page.</p>
<a name="qdoc-dependencies"></a>
<h2 id="qdoc-dependencies">QDoc Dependencies</h2>
<p>Since version 5.11, <a href="../qdoc/qdoc-index.html">QDoc</a> uses Clang to parse C++ code. If you wish to build <a href="qdoc-module.html">QDoc</a> manually, refer to <a href="../qdoc/qdoc-guide-clang.html">Installing Clang for QDoc</a> for specific build requirements.</p>
<a name="steps-for-building"></a>
<h2 id="steps-for-building">Steps for Building</h2>
<p>The following instructions describe how to build Qt from the source package. You can download the Qt 5 sources from the <a href="http://qt.io/download">Downloads</a> page. For more information, visit the <a href="gettingstarted.html">Getting Started with Qt</a> page.</p>
<a name="step-1-install-the-license-file-commercially-licensed-qt-only"></a>
<h3 id="step-1-install-the-license-file-commercially-licensed-qt-only">Step 1: Install the License File (Commercially Licensed Qt Only)</h3>
<p>If you use Qt with a commercial license, the Qt tools look for a local license file. If you are using a binary installer or the commercial Qt Creator, your licenses are automatically fetched and stored in your local user profile (<code>$HOME/Library/Application Support/Qt/qtlicenses.ini</code> file).</p>
<p>If you do not use any binary installer or Qt Creator, you can download the respective license file from your <a href="https://account.qt.io/">Qt Account</a> Web portal and save it to your user profile as <code>$HOME/.qt-license</code>. If you prefer a different location or file name, you need to set the <code>QT_LICENSE_FILE</code> environment variable to the respective file path.</p>
<a name="step-2-unpack-the-archive"></a>
<h3 id="step-2-unpack-the-archive">Step 2: Unpack the Archive</h3>
<p>Unpack the archive if you have not done so already. For example, if you have the <code>qt-everywhere-opensource-src-%VERSION%.tar.gz</code> package, type the following commands at a command line prompt:</p>
<pre class="cpp">

  cd <span class="operator">/</span>tmp
  gunzip qt<span class="operator">-</span>everywhere<span class="operator">-</span>opensource<span class="operator">-</span>src<span class="operator">-</span><span class="operator">%</span>VERSION<span class="operator">%</span><span class="operator">.</span>tar<span class="operator">.</span>gz        <span class="preprocessor"># uncompress the archive</span>
  tar xvf qt<span class="operator">-</span>everywhere<span class="operator">-</span>opensource<span class="operator">-</span>src<span class="operator">-</span><span class="operator">%</span>VERSION<span class="operator">%</span><span class="operator">.</span>tar          <span class="preprocessor"># unpack it</span>

</pre>
<p>This creates the directory <code>/tmp/qt-everywhere-opensource-src-%VERSION%</code> containing the files from the archive.</p>
<a name="step-3-build-the-qt-library"></a>
<h3 id="step-3-build-the-qt-library">Step 3: Build the Qt Library</h3>
<p>To configure the Qt library for your machine type, run the <code>./configure</code> script in the package directory.</p>
<p>By default, Qt is configured for installation in the <code>/usr/local/Qt-%VERSION%</code> directory, but this can be changed by using the <code>-prefix</code> option.</p>
<pre class="cpp">

  cd <span class="operator">/</span>tmp<span class="operator">/</span>qt<span class="operator">-</span>everywhere<span class="operator">-</span>opensource<span class="operator">-</span>src<span class="operator">-</span><span class="operator">%</span>VERSION<span class="operator">%</span>
  <span class="operator">.</span><span class="operator">/</span>configure

</pre>
<p>By default, Qt is built as a framework, but you can built it as a set of dynamic libraries (dylibs) by specifying the <code>-no-framework</code> option.</p>
<p>Qt can also be configured to be built with debugging symbols. This process is described in detail in the <a href="debug.html">Debugging Techniques</a> document.</p>
<p>The <a href="configure-options.html">Configure Options</a> page contains more information about the configure options.</p>
<p>To create the library and compile all the examples and tools, type:</p>
<pre class="cpp">

  make

</pre>
<p>If <code>-prefix</code> is outside the build directory, you need to install the library, examples, and tools in the appropriate place. To do this, type:</p>
<pre class="cpp">

  sudo make <span class="operator">-</span>j1 install

</pre>
<p>This command requires that you have administrator access on your machine.</p>
<p><b>Note: </b>There is a potential race condition when running make install with multiple jobs. It is best to only run one make job (-j1) for the install.</p><a name="step-4-set-the-environment-variables"></a>
<h3 id="step-4-set-the-environment-variables">Step 4: Set the Environment Variables</h3>
<p>In order to use Qt, some environment variables need to be extended.</p>
<pre class="cpp">

  PATH               <span class="operator">-</span> to locate qmake<span class="operator">,</span> moc and other <span class="type"><a href="../qtcore/qt.html">Qt</a></span> tools

</pre>
<p>This is done like this:</p>
<p>In <code>.profile</code> (if your shell is bash), add the following lines:</p>
<pre class="cpp">

  PATH<span class="operator">=</span><span class="operator">/</span>usr<span class="operator">/</span>local<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">-</span><span class="operator">%</span>VERSION<span class="operator">%</span><span class="operator">/</span>bin:$PATH
  <span class="keyword">export</span> PATH

</pre>
<p>In <code>.login</code> (in case your shell is csh or tcsh), add the following line:</p>
<pre class="cpp">

  setenv PATH <span class="operator">/</span>usr<span class="operator">/</span>local<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">-</span><span class="operator">%</span>VERSION<span class="operator">%</span><span class="operator">/</span>bin:$PATH

</pre>
<p>If you use a different shell, please modify your environment variables accordingly.</p>
<p><b>Qt is now installed.</b></p>
<a name="step-5-build-the-qt-documentation"></a>
<h2 id="step-5-build-the-qt-documentation">Step 5: Build the Qt Documentation</h2>
<p>For the Qt reference documentation to be available in <a href="../qtassistant/qtassistant-index.html">Qt Assistant</a>, you must build it separately:</p>
<pre class="cpp">

  make docs

</pre>
<a name="limitations"></a>
<h2 id="limitations">Limitations</h2>
<a name="fink"></a>
<h3 id="fink">Fink</h3>
<p>If you have installed the Qt for X11 package from <a href="http://www.finkproject.org/">Fink</a>, it will set the <code>QMAKESPEC</code> environment variable to <code>darwin-g++</code>. This will cause problems when you build the Qt for macOS package. To fix this, simply unset your <code>QMAKESPEC</code> or set it to <code>macx-g++</code> before you run <code>configure</code>. To get a fresh Qt distribution, run <code>make confclean</code> on the command-line.</p>
</div>
<!-- @@@macos-building.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
